            LIST        P=PIC16F628A
            #include    P16F628A.INC
            __CONFIG    _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _BODEN_OFF & _MCLRE_OFF & _LVP_OFF & DATA_CP_OFF & _CP_OFF


Rega		EQU			0x001A
Regb		EQU			0x001F
Reg_1       EQU         0x000C
Reg_2       EQU         0x000F
Reg_3       EQU         0x000E
Reg_4       EQU         0x0011
regw		EQU			0x001C
PC          EQU         0x0002

            org         0           ;            

   
            bsf         STATUS,5    ;    1 
			movlw		b'0000001'
			movwf		TRISB
            clrf        TRISA
            bcf         STATUS,5    ;     0
			clrf        Reg_4
          	movlw       0x38
			movwf       PORTB
			movlw       0xd
			movwf       PORTA

;   
m3          
             btfsc       PORTB,RB0     ; -  RB0 -    +
             goto        m2
             goto        m3          ;  
  ;   9 (  )    

m2          bcf         STATUS,C    ;     
            movlw       .247        ; (255-9)+1 = 247 -> W
            addwf       Reg_4,0     ; (Reg_4)+W

            btfss       STATUS,C ; 
             goto        m1
             goto        m4

m1          incf        Reg_4,0     ;    1  
			movwf		Regb
			incf 		Regb,0
			movwf		Rega

m4         
			movf		Reg_4,1 ;
			movwf		Regb ; 
			Movf        Regb,1 ;
			call        TABLE ;
            movwf       PORTB ;
			incf 		Regb,0 ;
			movwf		Rega ;
			Movf        Rega,1 ;
			call        TABLE ;
            movwf       PORTA ;
            goto        m3 ;


;====================================
TABLE       addwf      PC,F        ;    PC = PC + W
             retlw      0x38 ; 0 B
			 retlw      0xD ; 0 A
             retlw      b'11000' ; 1 B
             retlw      0x0 ; 1 A
             retlw      b'110000' ; 2 B
             retlw      b'1110' ; 2 A
             retlw      b'111000' ; 3 B
             retlw      b'1010' ; 3 A
             retlw      b'11000' ; 4 B
             retlw      b'11' ; 4 A
             retlw      b'101000' ; 5 A
             retlw      b'1011' ; 5 B
             retlw      b'101000' ; 6 B 
             retlw      b'1111' ; 6 A
             retlw      b'11000' ; 7 B
             retlw      b'10' ; 7 A
             retlw      b'111000' ; 8 B
             retlw      b'1111' ; 8 A
             retlw      b'111000' ; 9 B
             retlw      b'1011' ; 9 A
             retlw      b'011000' ; H B
             retlw      b'0111' ; H A
 ;====================================




Pause       movlw       .221
            movwf       Reg_1
            movlw       .130
            movwf       Reg_2
wr          decfsz      Reg_1, F
            goto        wr
            decfsz      Reg_2, F
            goto        wr
            nop
            nop
			return
            end                     ;  